In a traditional application delivery model, applications are provisioned on a computing device (e.g., physical computing device, such as a server, workstation, etc., or a virtual computing instance, such as a virtual machine, container, etc.) in a one-to-one manner, where for each individual computing device a separate copy of each application is installed on physical disks of the computing device. In a data center (e.g., in an enterprise) with many computing devices, an administrator of the data center may therefore need to install, update, or delete applications on computing devices individually, which may be a complex process that is time consuming.
Virtual application delivery systems can help alleviate some of the issues presented by the traditional application model, such as by allowing a single copy of an application to be used by many different computing devices (e.g., physical computing device or virtual computing instance). One type of virtual application delivery system involves applications stored in (e.g., installed on) shared read-only virtual disks (e.g., or another appropriate read-only container). One example of such a virtual application delivery system is App Volumes made commercially available from VMware, Inc. These shared virtual disks may be placed in a datastore accessible over a network by the computing devices or locally stored at a computing device. The computing devices may be configured by a server running a manager that mounts the virtual disks as read-only disks on the computing devices, including the stored applications, and the computing device can then access (e.g., run) the stored applications. The computing devices may further be configured with an agent, which may run as a service on the computing device and use drivers (e.g., filter drivers) to handle application calls and file-system redirects to the virtual disks for the applications. Accordingly, the stored applications are virtually delivered to the computing devices instead of being individually installed locally at each computing device.
Using such a virtual application delivery system, instead of having to individually install, update, or delete applications on each computing device, a virtual disk itself may be configured, such as by an administrator, and a single instance of the application can be installed, updated, or deleted on the virtual disk. Since each computing device uses the same instance installed on the virtual disk, the application may then be automatically installed, updated, or deleted at each computing device. For example, each time a computing device is booted or loaded, it may mount the virtual disk and any updates to the virtual disk including the applications stored on the virtual disk are then automatically applied at the computing device.
One limitation of such virtual application delivery systems, however, is the mounting procedure required at each computing device for each virtual disk with applications installed. In particular, mounting virtual disks may take time during boot of the computing device due to entitlements, loading information into memory, file system integration, etc., and therefore can increase login/loading time of the computing device. To alleviate some of the latency issues with mounting several virtual disks each for different applications, system administrators have typically included many applications on a single virtual disk which has one partition, and only one or a few such virtual disks then need to be mounted in order to access the applications. Though this decreases latency of mounting many virtual disks, if any single application needs to be installed, updated, or deleted that is stored on the virtual disk, the entire virtual disk including the single volume, including all the applications stored thereon, may need to be unmounted first at each separate computing device, modified, and then remounted to each computing device. Unmounting the virtual disk may require complex processes of waiting for or forcing users to logoff a session on a computing device. In another example, separate bundles containing updated applications could be created which would be used next time the user creates a new session on the computing device, though this requires storage for the new bundles and more complexity. Remounting virtual disks on a large number of computing devices is resource intensive. Further, there may be limits on the number of virtual disks that can be mounted at a computing device (e.g., 60 virtual disks per virtual computing instance).